package clean;

import java.io.FileNotFoundException;

/**
 * create by yongli on 2019-09-09 22:38
 * 现在来看一下这段代码得设计有什么不好的地方。
 * 1.违反单一权限原则，即判断，也做了相应的处理
 * 2.违反开闭原则，Employee有新类型时，必须要修改此类，理想的情况是不用修改的
 * 想一想有什么办法吗？
 * 从需求出发，根据雇员类型计算工资，可能这个雇员类型经常变换，也可能不变。
 */

public class Payroll {
    public int calculatePay(Employee e) throws FileNotFoundException{
        switch (e.type){
            case "Admin":
                return calculateAdminPay(e);
            case "Engigeer":
                return calculateEngineerPay(e);
            case "Staff":
                return calculateStaffPay(e);
            default:
                // 显示抛出的异常都要进行处理
                throw new FileNotFoundException("dd");
                        }
    }
    public int calculateAdminPay(Employee e){
        return 1;
    }
    public int calculateEngineerPay(Employee e){
        return 2;
    }
    public int calculateStaffPay(Employee e){
        return 3;
    }
}
